

// This file was generated automatically. See README.md.
// DO NOT MODIFY IT MANUALLY.

package com.github.xyzboom.codesmith.ir.visitors

import com.github.xyzboom.codesmith.ir.declarations.IrDeclaration
import com.github.xyzboom.codesmith.ir.declarations.IrPropertyDeclaration
import com.github.xyzboom.codesmith.ir.expressions.IrBlock
import com.github.xyzboom.codesmith.ir.types.IrClassifier
import com.github.xyzboom.codesmith.ir.types.IrNullableType
import com.github.xyzboom.codesmith.ir.types.IrParameterizedClassifier
import com.github.xyzboom.codesmith.ir.types.IrSimpleClassifier

/**
 * Auto-generated by [com.github.xyzboom.codesmith.tree.generator.printer.VisitorPrinter]
 */
abstract class IrDefaultVisitor<out R, in D> : IrVisitor<R, D>() {

    override fun visitDeclaration(declaration: IrDeclaration, data: D): R =
        visitNamedElement(declaration, data)

    override fun visitPropertyDeclaration(propertyDeclaration: IrPropertyDeclaration, data: D): R =
        visitDeclaration(propertyDeclaration, data)

    override fun visitNullableType(nullableType: IrNullableType, data: D): R =
        visitType(nullableType, data)

    override fun visitClassifier(classifier: IrClassifier, data: D): R =
        visitType(classifier, data)

    override fun visitSimpleClassifier(simpleClassifier: IrSimpleClassifier, data: D): R =
        visitClassifier(simpleClassifier, data)

    override fun visitParameterizedClassifier(parameterizedClassifier: IrParameterizedClassifier, data: D): R =
        visitClassifier(parameterizedClassifier, data)

    override fun visitBlock(block: IrBlock, data: D): R =
        visitExpressionContainer(block, data)
}
